package com.gmscosmo.request;

public class CreateRoomBody extends JanusRequestBody {
    private String description;// 房间的描述信息
    private Boolean is_private;// true | false（是否是私有房间? 如果创建的是私有房间，则无法通过list指令进行查看）
    private String secret;// <可选项，操作房间所需的密码，如果设置了，则像做销毁房间这样的操作时你要带上它才行>
    private String pin;//  <可选项，加入会议房间的密码>
    private Boolean require_pvtid;// true | false（是否订阅音视频流时，需要提供一个与发布者相关的有效private_id， 默认为false）
    private Integer publishers;// <房间内发布者的最大数>（例如，一个视频会议可以有6个发布者，而广播只有一个，默认= 3）
    private String bitrate;//<房间里发布者发送数据的最大比特率>（例如128000）
    private Integer fir_freq;//<向发布者发送FIR指令的频率>（0 =禁用）
    private String audiocodec;//opus | g722 | pcmu | pcma | isac32 | isac16（发布者可以使用的音频编解码器列表，默认为opus。编码器按优先顺序以逗号分隔）
    private String videocodec;//vp8 | vp9 | h264 | av1 | h265（发布者可以使用的视频编解码器列表，默认为vp8。可以按优先级顺序用逗号分隔，例如，vp9，vp8，h264）
    private String vp9_profile;//VP9首选的profile("2" 表示 "profile-id= 2" ）
    private String h264_profile;//H.264首选的profile（"42e01f" 表示 "profile-level-id= 42e01f" ）
    private Boolean opus_fec;//true | false（是否使用带内FEC；仅适用于Opus，默认为false）
    private Boolean video_svc;//true | false（是否启用SVC支持；仅适用于VP9，默认为false）
    private Boolean audiolevel_ext;//true | false（对于发布者是否使用RTP扩展ssrc-audio-level？默认为 true）
    private Boolean audiolevel_event;//true | false（是否将audiolevel事件发送给其他用户）
    private Integer audio_active_packets;//100（音频保活包个数，默认值= 100，2秒）
    private Integer audio_level_average;//25（音频音量级别的平均值，127 =静音，0 ='太大声'，默认= 25）
    private Boolean videoorient_ext = false;//true | false（发布者是否使用RTP扩展video-orientation? 默认= true）
    private Boolean playoutdelay_ext;//true | false（发布者是否使用RTP扩展playout-delay? 默认= true）
    private Boolean transport_wide_cc_ext;//true | false（发布者是否使用RTP扩展 transport-wide-cc? 默认= true）
    private Boolean record;//true | false（该房间是否启录制？默认= false）
    private String rec_dir;//<启用录制后，录制文件存放的目录>
    private Boolean lock_record;//true | false（是否锁定录制状态? 默认= false）
    private Boolean notify_joining;//true | false（可选，当有新的参与方加入房音后，是否通知房间里的所有参与者?Videoroom插件默认仅通知发布者，启用此功能可能会导致额外的通知传输。该功能与require_pvtid一起启用时，对管理员管理仅收听的参与者特别有用。默认= false）
    private Boolean require_e2ee;//true | false（是否启用端到端加密? 默认= false）
    private Boolean permanent;//<true | false，是否创建永久房间，默认= false>
    private String allowed;//[可选，用户加入房间的token数组]
    private Boolean is_public;//是否公开
    public CreateRoomBody(){
        super("create");
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Boolean getIs_private() {
        return is_private;
    }

    public void setIs_private(Boolean is_private) {
        this.is_private = is_private;
    }

    public String getSecret() {
        return secret;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }

    public String getPin() {
        return pin;
    }

    public void setPin(String pin) {
        this.pin = pin;
    }

    public Boolean getRequire_pvtid() {
        return require_pvtid;
    }

    public void setRequire_pvtid(Boolean require_pvtid) {
        this.require_pvtid = require_pvtid;
    }

    public Integer getPublishers() {
        return publishers;
    }

    public void setPublishers(Integer publishers) {
        this.publishers = publishers;
    }

    public String getBitrate() {
        return bitrate;
    }

    public void setBitrate(String bitrate) {
        this.bitrate = bitrate;
    }

    public Integer getFir_freq() {
        return fir_freq;
    }

    public void setFir_freq(Integer fir_freq) {
        this.fir_freq = fir_freq;
    }

    public String getAudiocodec() {
        return audiocodec;
    }

    public void setAudiocodec(String audiocodec) {
        this.audiocodec = audiocodec;
    }

    public String getVideocodec() {
        return videocodec;
    }

    public void setVideocodec(String videocodec) {
        this.videocodec = videocodec;
    }

    public String getVp9_profile() {
        return vp9_profile;
    }

    public void setVp9_profile(String vp9_profile) {
        this.vp9_profile = vp9_profile;
    }

    public String getH264_profile() {
        return h264_profile;
    }

    public void setH264_profile(String h264_profile) {
        this.h264_profile = h264_profile;
    }

    public Boolean getOpus_fec() {
        return opus_fec;
    }

    public void setOpus_fec(Boolean opus_fec) {
        this.opus_fec = opus_fec;
    }

    public Boolean getVideo_svc() {
        return video_svc;
    }

    public void setVideo_svc(Boolean video_svc) {
        this.video_svc = video_svc;
    }

    public Boolean getAudiolevel_ext() {
        return audiolevel_ext;
    }

    public void setAudiolevel_ext(Boolean audiolevel_ext) {
        this.audiolevel_ext = audiolevel_ext;
    }

    public Boolean getAudiolevel_event() {
        return audiolevel_event;
    }

    public void setAudiolevel_event(Boolean audiolevel_event) {
        this.audiolevel_event = audiolevel_event;
    }

    public Integer getAudio_active_packets() {
        return audio_active_packets;
    }

    public void setAudio_active_packets(Integer audio_active_packets) {
        this.audio_active_packets = audio_active_packets;
    }

    public Integer getAudio_level_average() {
        return audio_level_average;
    }

    public void setAudio_level_average(Integer audio_level_average) {
        this.audio_level_average = audio_level_average;
    }

    public Boolean getVideoorient_ext() {
        return videoorient_ext;
    }

    public void setVideoorient_ext(Boolean videoorient_ext) {
        this.videoorient_ext = videoorient_ext;
    }

    public Boolean getPlayoutdelay_ext() {
        return playoutdelay_ext;
    }

    public void setPlayoutdelay_ext(Boolean playoutdelay_ext) {
        this.playoutdelay_ext = playoutdelay_ext;
    }

    public Boolean getTransport_wide_cc_ext() {
        return transport_wide_cc_ext;
    }

    public void setTransport_wide_cc_ext(Boolean transport_wide_cc_ext) {
        this.transport_wide_cc_ext = transport_wide_cc_ext;
    }

    public Boolean getRecord() {
        return record;
    }

    public void setRecord(Boolean record) {
        this.record = record;
    }

    public String getRec_dir() {
        return rec_dir;
    }

    public void setRec_dir(String rec_dir) {
        this.rec_dir = rec_dir;
    }

    public Boolean getLock_record() {
        return lock_record;
    }

    public void setLock_record(Boolean lock_record) {
        this.lock_record = lock_record;
    }

    public Boolean getNotify_joining() {
        return notify_joining;
    }

    public void setNotify_joining(Boolean notify_joining) {
        this.notify_joining = notify_joining;
    }

    public Boolean getRequire_e2ee() {
        return require_e2ee;
    }

    public void setRequire_e2ee(Boolean require_e2ee) {
        this.require_e2ee = require_e2ee;
    }

    public Boolean getPermanent() {
        return permanent;
    }

    public void setPermanent(Boolean permanent) {
        this.permanent = permanent;
    }

    public String getAllowed() {
        return allowed;
    }

    public void setAllowed(String allowed) {
        this.allowed = allowed;
    }

    public Boolean getIs_public() {
        return is_public;
    }

    public void setIs_public(Boolean is_public) {
        this.is_public = is_public;
    }
}
